matlab打开dat形式文件 您所在的位置:网站首页 matlab load dat文件 matlab打开dat形式文件

matlab打开dat形式文件

2023-08-28 03:29| 来源: 网络整理| 查看: 265

MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据;将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据。至于选择哪种机制,则根据下面两个因素决定:

● 用户所执行的操作是导入数据还是导出数据;

● 数据的格式为文本格式、二进制格式还是如HDF之类的标准格式。

将数据导入MATLAB中最容易的方法就是使用导入数据模板(Import Wizard),使用该模板时不需要知道数据的格式,只需指定包含这些数据的文件,然后导入模板会自动处理文件内容。

本章重点内容如下:

● 文件的打开和关闭

● 文本文件的读取

● 存写ASCII数据

● 二进制数据的读取

● 二进制数据的存写

● 使用I/O文件函数进行数据读写

● MAT 文件的读写

2.1  文件的打开和关闭

2.1.1  文件的打开

无论是要读写ASCII码文件还是二进制文件,都必须先用fopen函数将其打开,在默认情况下,fopen以二进制格式打开文件,它的使用语法如下:

fopen ('filename', 'mode')

其中filename表示要读写的文件名称,mode则表示要对文件进行的处理方式,可以是表2-1中的任一字符串。

表2-1  文本文件打开的模式

mode

意    义

rt

以只读方式(Reading)打开文件

wt

以只写方式(Writing)打开文件

at

以追加方式(Appending)打开文件,新内容将从原文件后面续写

r+t

以同时读写方式打开文件

w+t

以同时读写创建文件,原文件内容被清除

a+t

以同时读和追加(Reading and Appdending)方式,原文件内容被保留,新内容将从原文件的后面开始

At

以读写方式打开或创建文件,适用于对磁带介质文件的操作

Wt

以写入方式打开或创建文件,原文件内容被清除,适用于磁带介质文件的操作

fopen函数有两个返回值,一个是返回一个文件标志(file Identifier),它会作为参数被传入其他对文件进行读写操作的命令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。如果返回的文件标识是–1,则代表fopen无法打开文件,其原因可能是文件不存在,或是用户无法打开此文件权限。另一个返回值就是message,用于返回无法打开文件的原因。为了安全起见,最好在每次使用fopen函数时,都测试其返回值是否为有效值。

下面以脚本m文件为例来声明文件的打开。

例2-1  %exam1.m

[f,message]=fopen('fileexam1', 'r')

if f==-1

disp (message);   %显示错误信息

end

若文件fileexam1不存在,则显示如下信息。

Cannot open file.existence?permissions?memory?...

例2-2  %exam2.m

[f,message]=fopen('fileexam2', 'r');

if f==-1

disp (message);    %显示错误信息

else

disp(f);

end

若文件fileexam2存在,则返回f值。

2.1.2  文件的关闭

一旦完成文件的读写,最好关闭文件,以便对其进行其他操作。这时就可以使用fclose函数来关闭文件,其适用语法如下。

fclose(f)

其中f为打开文件的标志,若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该文件。一般来说,在完成对文件的读写操作后就应关闭它,以免造成系统资源浪费。此外,需注意的是,打开和关闭文件都比较耗时,因此为了提高程序执行效率,最好不要在循环体内使用文件。

若要一次关闭打开的所有文件,可以使用下面的命令:

fclose all

2.2  文 本 数 据

虽然MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的数据,也常常采用文本数据格式与外界进行数据交换。在文本格式中,数据采用ASCII码格式,可以表示字母和数字字符。ASCII文本数据可以在文本编辑器中查看和编辑。MATLAB提供多种函数能够进行文件读写,这些函数都是MATLAB的一部分,不需要额外的工具箱支持。

2.2.1  从文本文件中读取数据

1.使用导入模板来读取数据

使用导入模板来读取数据,需按以下步骤进行:

(1) 选择File→Import Data选项,然后弹出一个文件选择对话框;也可以使用uiimport函数来打开导入数据模板。

(2) 在文件选择对话框中选择想导入数据的文本文件,然后单击Open按钮,导入数据模板就会打开该文件并准备处理其内容。

(3) 指定用于分开单个数据的字符,该字符称为分隔符或列分隔符。在多数情况下可以用导入模板来设定分隔符。

(4) 选择要导入的变量。在默认情况下,导入模板将所有的数值数据放在一个变量中,而将文本数据放在其他变量中。

(5) 单击Finish按钮完成数据的导入。

当使用导入模板来打开一个文本文件时,在导入模板对话框的预览区仅显示原始数据的一部分,通过它,用户可以验证该文件中的数据是否为所期望的。导入模板也根据文件中的数据分隔符来对导入的数据进行预处理。在导入模板中打开工作区中的grade.txt文件。

english  math  physic

joe        80    90      60

susan        78    98      88

rob        67    90      89

图2-1  将数据通过模板导入

在图2-1中,导入模板已辨认space字符,把它作为文件中数据的分隔符,并建立了两个变量:data(包含文件中所有数值数据)和textdata(包含文件中所有文本数据)。

当导入模板正确导入文件中的数据后,就会显示它所建立的变量。要选择一个变量来导入数据,可单击它名称后面的复选框。在默认情况下,所有变量都会被选中。在导入对话框的右面显示了导入模板建立的变量内容。要查看其他变量,只需要单击该名称。在选择好要导入的变量后,单击Next按钮,如图2-2所示。

图2-2  使用模板查看各变量数据

在默认情况下,导入模板将文件中所有的数值数据放在一个变量中;若文件包含文本数据,则模板将它们放在另外一个变量中;若文件包含行或列,模板也将它们作为各自独立的变量分别称为行头和列头。

当所有导入模板创建好数据后,使用whos命令可以查看工作空间的变量。

>> whos

Name              Size            Bytes      Class     Attributes

data              3x3             72      double

textdata              4x1             314      cell

2. 使用函数来读取文本数据

若要在命令行或在一个 M 文件中读取数据,必须使用 MATLAB 数据函数,函数的选择则是依据文本文件中数据的格式。而且文本数据格式在行和列上必须采取一致的模式,并使用文本字符来分隔各个数据项,称该字符为分隔符或列分隔符。分隔符可以是space、comma、semicolon、ab或其他字符,单个的数据可以是字母、数值字符或它们的混合形式。

文本文件也可以包含称之为头行的一行或多行文本,或可以使用文本头来标志各列或各行。在了解要输入数据的格式之后,便可以使用 MATLAB 函数来读取数据了。若对 MATLAB 函数不熟悉,可从表2



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有